1. Field of the Invention
This invention relates to generating a clock distribution system for the distribution of clock signals in an integrated circuit design.
2. Description of the Related Art
Clocks are a basic component of circuit designs. It is common for a single clock source (often referred to as the clock root or root) to drive many clock loads (often referred to as clock sinks or sinks). Some sort of clock distribution system is used to distribute clock signals from the root to the sinks. The clock signals may undergo logic operations so that the clock signals received by the sinks may not be exact copies of the clock signal transmitted by the root. For example, clock gating is a common type of logic operation applied to clock signals. Thus, the clock distribution system typically includes logic in addition to some mechanism for distributing the clock signals to different locations.
It is typically desirable for the clock distribution system to exhibit low skew. In most cases, it is desirable for clock signals to reach their respective sinks with the same delay. Furthermore, current circuit designs are often expected to operate correctly across many corners, modes and in the presence of on-chip variations. Corners refers to variations in process, voltage, or temperature that may affect the operation of a circuit. Modes refers to different modes of operation for a circuit, for example startup mode, regular mode, low power mode, sleep mode, etc. On-chip variations refers to variations across an integrated circuit. Due to on-chip variations, the same nominal circuit at two different locations on an integrated circuit may vary in its behavior. Preferably, the low skew condition would hold for all corners, modes and in the presence of on-chip variations.
One type of clock distribution system is a tree. A tree starts at the clock root and then branches and branches and branches until it reaches all of the sinks. The branches and branching points may contain logic, and it is relatively easy to implement any required logic if the clock distribution system is architected as a tree. However, it can be difficult to achieve low skew across the entire tree, especially across all corners, modes and in the presence of on-chip variations. This is especially true if the tree spans a large physical distance so that sinks are placed far apart. The conditions at one end of the tree may be significantly different from those at the other end, in which case the tree may no longer achieve low skew.
Another type of clock distribution system is a mesh. A mesh typically is a grid of conductors. The root drives a set of parallel drivers, which in turn drive the mesh. The mesh then drives the sinks. Ideally, the impedance between different points on the mesh is low enough that on-chip variations are somewhat averaged out across the mesh. However, a mesh that directly drives all sinks can take up significant area and require significant power to drive. It can also be difficult to implement logic in a mesh.
Thus, there is a need for improved clock distribution systems.